'''
 * @ author     ：廖传港
 * @ date       ：Created in 2020/12/4 18:11
 * @ description：
 * @ modified By：
 * @ ersion     : 
 * @File        : test1.py 
'''
"""
线性回归(一元线性回归，预测披萨价格和直径的关系)
LinearRegression基于最小二乘法
"""

from sklearn.linear_model import LinearRegression
import joblib

# 训练点
X = [[8], [9], [11], [16], [12]]
Y = [[11], [8.5], [15], [18], [11]]
# 基于x,y建立模型
model = LinearRegression()
model.fit(X, Y)
# 将模型持久化保存
joblib.dump(model, "linear.model")

"""
加载已经持久化的模型
"""
# !/usr/bin/python
from keras.preprocessing.text import Tokenizer
import pickle

# Tokenizer
num_words = 3  # 设置的最大词数
tk = Tokenizer(num_words=num_words + 1, oov_token='UNK')  # 因为需要增加未登录的词，所有+1
texts = ['今天 天气 不错', '明天 天气 还行', '这是 什么 天气 啊']
tk.fit_on_texts(texts)
tk.word_index = {e: i for e, i in tk.word_index.items() if i <= num_words}
tk.word_index[tk.oov_token] = num_words + 1
print(tk.word_index)

sequences = tk.texts_to_sequences(["这是 什么 天气 呀", '我的 天 呐'])
print("original model:")
print(sequences)

# 使用joblib保存模型并加载模型
f = open('data_tk_pickle_result.pkl', 'wb')
pickle.dump(tk, f)  # 模型保存
f.close()
fl = open('data_tk_pickle_result.pkl', 'rb')
tokenizer2 = pickle.load(fl)  # 模型载入
fl.close()
sequences = tokenizer2.texts_to_sequences(["这是 什么 天气 呀", '我的 天 呐'])
print("saved model:")
print(sequences)